$(function () {


    let layer = layui.layer
    let form = layui.form
    // 需求1:渲染文章分类
    // 调用方法
    initArtCateList()
    function initArtCateList() {
        // 发送axios
        axios({
            method: 'GET',
            url: '/my/article/cates',
        }).then(res => {
            // 检验失败提示
            if (res.data.status != 0) return layer.msg(res.data.message)


            // 定义数组
            let arr = ['<option value="">请选择文章所属分类</option>']
            // 遍历获取数据
            res.data.data.forEach(ele => {
                arr.push(`
                    <option value="${ele.Id}">${ele.name}</option>
                   
                    `)
            })
            // 转成字符串不然是,分隔的
            let str = arr.join('')
            // 获取标签添加数据
            $('[name=cate_id]').empty().html(str)
            // 数据无法渲染到表格,调用方法才可以
            form.render()

        })
    }

    // 需求2:初始化富文本编辑器
    initEditor()


    // 需求3:文章封面
    // 3.1 初始化图片裁剪器
    var $image = $('#image')

    // 3.2 裁剪选项
    var options = {
        aspectRatio: 400 / 280,
        preview: '.img-preview'
    }

    // 3.3 初始化裁剪区域
    $image.cropper(options)

    // 需求4:确认状态
    let state = ''
    $('#btnSave1').click(function () {

        state = '已发布'

    })
    $('#btnSave2').click(function () {

        state = '草稿'

    })

    // 需求5:选择封面
    // 5.1连锁触发事件
    $('#chooseImage').click(function () {
        $('#file').click()
    })
    // 5.2绑定change事件
    $('#file').on('change', function () {
        // 拿到用户选择的文件
        let file = this.files[0]

        // 校验并提示
        if (file == undefined) return layer.msg('文件不能为空')

        // 根据选择的文件，创建一个对应的 URL 地址：
        var url = URL.createObjectURL(file)

        $image.cropper('destroy')      // 销毁旧的裁剪区域
            .attr('src', url)  // 重新设置图片路径
            .cropper(options)        // 重新初始化裁剪区域


    })


    // 需求6:表单提交/文章发布
    $('#formPub').submit(function (e) {
        // 阻止默认行为
        e.preventDefault()

        // 获取数据添加到formdata对象里
        let fd = new FormData(this)
        // console.log(...fd);

        // 添加状态
        fd.append('state', state)

        // 添加文件
        $image.cropper('getCroppedCanvas', { // 创建一个 Canvas 画布
            width: 400,
            height: 280
        }).toBlob(function (blob) {       // 将 Canvas 画布上的内容，转化为文件对象
            // 得到文件对象后，进行后续的操作
            fd.append('cover_img', blob)
            console.log(...fd);


            // 第一种ajax发送
            // let baseURL = 'http://api-breakingnews-web.itheima.net'
            // $.ajax({
            //     method: 'POST',
            //     url: baseURL + '/my/article/add',
            //     contentType: false,
            //     processData: false,
            //     data: fd,
            //     headers: {
            //         Authorization: localStorage.getItem('token')
            //     },
            //     success: function (res) {
            //         // 校验失败给出提示

            //         if (res.status != 0) return layer.msg(res.message)

            //         // 成功给出提示
            //         layer.msg(res.message + '3秒后将跳转到文章列表')
            //         setTimeout(function () {
            //             // 跳转到文章列表
            //             location.href = '/article/art_list.html'
            //         }, 3000)

            //     }
            // })

            // 第二种发送axios
            axios({
                method: 'POST',
                url: '/my/article/add',
                data: fd,
            }).then(res => {
                // 校验失败给出提示
                if (res.data.status != 0) return layer.msg(res.data.message)

                // 成功给出提示
                layer.msg(res.data.message + '3秒后将跳转到文章列表')

                setTimeout(function () {
                    // 跳转到文章列表
                    // location.href = '/article/art_list.html'
                    window.parent.document.querySelector('#art_list').click()
                }, 3000)

            })


        });

    })

})